import java.awt.print.PrinterGraphics;

public class Test {
    public static void main(String[] args) {
//        long a = 203120L;//长整型变量的初始值后加L 包装类型为Long
//        byte b = 11;
        //System.out.println(b);//也是输出11，
        // byte、long、int、short都是可以定义整型变量，为什么要给出这么多类型呢？
        //优化内存，节省内存空间。

        //int a2 = 5;
        //int b2 = 2;
        //System.out.println(a2/b2);//输出的不是2.5，而是2；这是因为int型/int型之后还是int型，会直接舍弃小数部分。
        //如下改变a2和b2的类型就可以输出2.5;
        //double a2 = 5;
        //double b2 = 2;
        //System.out.println(a2/b2);

        //double num = 1.11;
        //System.out.println(num*num);//输出了1.2321000000000002，而不是1.2321
        //这是因为double类型的内存布局遵循IEEE754标准，使用有限的内存空间表示可能无限循环的小数，势必会存在一定的精度误差
        //所以浮点数是个近似值，并不是精确值

        //float a = 1.12f;//如果不加f的话，系统会自动把1.12当作double类型，占用8字节内存，造成内存浪费；

//        char c1 = 'A';
//        char c2 = '2';
//        char c3 = '仁';//java中的字符可以存放整型;
        //char型的包装类型是Character
        //System.out.println(c1);

        //boolean b1 = false;
        //System.out.println(b1);//输出的是false,而不是0；
        //boolean型变量也不可以与int型进行转换，不存在1和非0就是true,0就是false的情况;
        //没有明确规定boolean占用几个字节;

//        int b2 = 2;
//        double b3 = 3.4542;
//        b3 = b2;
        //System.out.println(b3);//输出2.0
        //说明double类型的b3把b2里面的2自动转换成了double类型了;

//        int a2 = 4;
//        long a3 = 9313L;
        //a3 = a2;
       // System.out.println(a3);//输出4;
        //a2 = a3;//此时系统会报错，这是因为int型变量的a2没办法自动转换成更大类型的long类型;也就是4字节内存的a2系统认为如果接受8字节内存的a3可能造成a3的数据遗失
        //对float和double类型的自动转换同样适用;
        //如果我们要强制转换这个数据，可以使用如下的方法
//        a2 = (int)a3;//此时a3中的数据就被强制转换成了int型变量，其中的（int）叫做强制转换符

//        int a4 = 4;
//        long a5 = 3213;
//        //int a6 = a4 + a5;//此时系统会报错，这是因为a5是long类型的属于大类型。int型的a6系统认为无法接受这个大类型的变量
//        //下面是强制解决办法
//        //int a6 = a4  + (int)a5;//这种方法1可以强制解决
//        //int a6 = (int)（a5 + a4);//这是方法2
//        long a6 = a4 + a5;//这种方法使得a4变量也转换成了long类型，也叫类型提升
//
//        byte b4 = 12;
//        byte b5 = 11;
       // byte b6 = b4 + b5;//此时系统会报错，这是因为b4+b5会先将b4和b5都提升到int型，再进行计算，得到的结果显然也是int型，对byte型来说int型属于大类型，无法容纳;

//        String s1 = "hello";
//        String s2 = "bit";
        //System.out.println(s1);//输出字符串hello
        //System.out.println(s1 + s2);//输出hellobit，这就是+号起到的作用，连接字符串

//        int a = 102;//如何操作能转成字符串呢？
//        String s1 = a + "";//这是方法1
//        System.out.println(s1);//输出102
//        String s2 = String.valueOf(a);//这是方法2
//        System.out.println(s2);

//        String s1 = "102";//该怎么转换成int型呢？
//        int a = Integer.valueOf(s1);
//        System.out.println(a);



    }
}
